<template>
  <div>
    <div class="form">
        <!-- 游戏区服 -->
        <div class="form-item">
            <text class="label">游戏区服</text>
            <el-cascader placeholder="请选择您所在的区服" v-model="selectedServer" :options="serverTree" style="width: 200px;margin-bottom: 10px;" />
            <!-- <div class="handle" @click="showServerPicker">
                <view class="selected-tag">
                    {{ `${serverTree[selectedGroupIndex].text}/${selectedServer}` || '请选择您所在的区服' }}
                    <img src="../../assets/icons/arrow-down.png"></img>
                </view>
            </div> -->
        </div>
        <!-- 游戏角色 -->
        <div class="form-item" v-if="showOrder">
            <text class="label">游戏角色</text>
            <el-input v-model="formData.username" style="width: 200px;height: 45px;margin-bottom: 10px;"
                placeholder="请输入您的游戏角色名" />
        </div>
        <!-- 号主手机（必填） -->
        <div class="form-item" v-if="showOrder">
            <text class="label">号主手机（必填）</text>
            <el-input v-model="formData.phone" style="width: 200px;height: 45px;margin-bottom: 10px;"
                placeholder="请输入您的手机号" />
        </div>
    </div>

    <!-- 游戏区服选择弹窗 -->
    <el-dialog v-model="serverPopup" title="请选择游戏区服" width="1000" :before-close="hideServerPicker">
        <div class="popup-content">
            <div class="body">
                <!-- 左侧导航栏 -->
                <div class="popup-nav">
                    <div v-for="(group, groupIndex) in serverTree" :key="groupIndex" class="nav-item"
                        :class="{ active: selectedGroupIndex === groupIndex }" @click="selectGroup(groupIndex)">
                        {{ group.text }}
                    </div>
                </div>

                <!-- 右侧选择内容 -->
                <div class="popup-scroll">
                    <div v-if="selectedGroupIndex !== null" class="popup-group">
                        <div v-for="(item, itemIndex) in serverTree[selectedGroupIndex].children" :key="itemIndex"
                            class="popup-item" @click="selectServerItem(item)">
                            {{ item.text }}
                        </div>
                    </div>
                    <div v-else class="popup-empty">请选择左侧分类</div>
                </div>
            </div>
        </div>
    </el-dialog>

    <!-- 订单信息区域 -->
    <!-- <div class="orderMsg">
        <div class="pay">
            <img src="../../assets/icons/pay.png"></img>
            <div class="text">建议出价 <span style="color: red;">87元</span></div>
        </div>
        <div class="time">
            <img src="../../assets/icons/time.png"></img>
            <div class="text">预计时限 <span style="color: red;">47小时</span></div>
        </div>
    </div> -->
    <!-- 底部按钮 -->
    <!-- <div class="footer">
        <div class="button" @click="submitOrder()">下一步</div>
    </div> -->
    <div class="special-task" @click="changeShowOrder" v-if="!showOrder">
        <div class="label">预约下单</div>
    </div>
    <PLWWQYsubmitOrder v-if="showOrder" :formDataInput="formData"></PLWWQYsubmitOrder>
  </div>
</template>
<script>
import PLWWQYsubmitOrder from '../../views/PL/WWQYsubmitOrder/index.vue';
// import { ref, onMounted } from "vue"; // Removed Vue 3 imports
// import { useRouter } from 'vue-router'; // Removed Vue 3 imports

export default {
  name: 'WWQYPL',
  components: {
    PLWWQYsubmitOrder
  },
  data() {
    return {
      showOrder: false,
      // 区服数据
      serverTree: [
        {
          label: '默认区',
          value: "默认区",
          children: [
            { label: '默认服', value: "默认服" },
          ]
        }
      ],
      selectedServerValue: "默认服", // Renamed from selectedServer to avoid conflict with computed prop if any, used for v-model
      selectedServerLabel: "默认服", // To store the display label
      selectedGroupIndex: 0, // 当前选中的导航栏索引
      serverPopup: false,
      // 订单提交数据
      formData: {
        server: '',
        username: '',
        phone: ''
      }
    };
  },
  methods: {
    changeShowOrder() {
      this.showOrder = !this.showOrder;
    },
    // 区服选择相关方法
    showServerPicker() {
      console.log("serverPopup", this.serverPopup);
      this.serverPopup = true;
    },
    hideServerPicker() {
      this.serverPopup = false;
    },
    selectGroup(index) {
      this.selectedGroupIndex = index;
    },
    selectServerItem(item) {
      this.selectedServerValue = item.value; // Store value for potential logic
      this.selectedServerLabel = item.label; // Store label for display/logic
      this.hideServerPicker();
      // Update formData server based on selection if needed immediately
      const group = this.serverTree[this.selectedGroupIndex];
      this.formData.server = `${group.label}/${item.label}`;
    },
    // 订单提交
    submitOrder() {
      // Ensure server info is up-to-date in formData before submitting
      // Note: The original logic updated formData only in submitOrder, which might be intended.
      // If using v-model on formData fields directly, this might be redundant.
      const group = this.serverTree[this.selectedGroupIndex];
      this.formData.server = `${group.label}/${this.selectedServerLabel}`;

      console.log("提交订单1", this.formData);
      this.$router.push({
        path: "/PL/WWQYsubmitOrder",
        query: { formData: JSON.stringify(this.formData) }
      });
    }
  },
  mounted() {
    // onMounted logic goes here if there was any
  }
};
</script>
<style scoped>
:deep(.el-input__wrapper) {
    height: 45px;
}
.special-task {
    width: 40%;
    border-radius: 16px;
    /* box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); */
    /* margin-top: 5px; */
    /* padding: 20px; */
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: space-between;
    background-color: #fff;
    margin: 50px auto;
    /* margin-left: 20px; */
}


.special-task .label {
    width: 100%;
    font-size: 20px;
    font-weight: 700;
    background-color: #6041e9;
    color: #fff;
    padding: 10px 20px;
    box-sizing: border-box;
    border-radius: 16px;
    transition: all .3s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.special-task .label:hover {
    cursor: pointer;
    background-color: #3105f8;
}
/* 表单样式 */
.form {
    width: 100%;
    box-sizing: border-box;
    background-color: transparent;
    display: flex;
    align-items: start;
    flex-wrap: wrap;
    padding: 24px 32px;
    background: #fff;
}

.form-item {
    width: 20%;
    margin-bottom: 30px;
    position: relative;
    display: flex;
    flex-direction: column;
    background-color: #fff;
    border-radius: 16px;
    box-sizing: border-box;
}

.form-item .label {
    width: 100%;
    height: 100%;
    display: block;
    font-size: 20px;
    color: #000;
    margin-bottom: 20px;
}

.form-item .handle {
    width: 70%;

}

.picker,
.input {
    width: 100%;
    height: 80px;
    border-radius: 8px;
    padding: 0 20px;
    font-size: 28px;
    color: #666;
}

.selected-tag {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0 20px;
    height: 50px;
    border-radius: 8px;
    font-size: 20px;
    color: #666;
}

.selected-tag img {
    width: 24px;
    height: 24px;
    margin-left: 20px;
}

.input-group {
    display: flex;
    gap: 20px;
}

.input-group input {
    flex: 1;
    height: 80px;
    border-radius: 8px;
    padding: 0 20px;
    font-size: 28px;
    color: #666;
    border: 1px solid #ccc;
}

.dual-picker {
    display: flex;
    align-items: center;
    gap: 20px;
}

.tier-picker {
    flex: 1;
    position: relative;
}

.tier-picker::after {
    content: "▼";
    position: absolute;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
}

.arrow {
    color: #666;
    font-size: 40px;
}

.picker {
    border-radius: 8px;
    padding: 0 20px;
    font-size: 28px;
    color: #666;
    background-color: #fff;
}

.picker::placeholder {
    color: #999;
}

/* 输入框聚焦样式 */
input:focus {
    border-color: #388aff;
    box-shadow: 0 0 10px rgba(26, 160, 53, 0.1);
}

/* 弹窗样式 */
.popup-content {
    display: flex;
    flex-direction: column;
    background-color: #fff;
    border-radius: 20px 20px 0 0;
}

.time-selector {
    display: flex;
    align-items: center;
}

.time-scroll {
    overflow-y: auto;
    height: 500px;
    width: 50%;
    display: flex;
    flex-direction: column;
    margin-right: 20px;
}

.time-scroll .date-display {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    color: #333;
    padding: 30px 0;
    border-bottom: 1px solid #f0f0f0;
}

.time-scroll .time-item {
    cursor: pointer;
    height: 100px;
    line-height: 100px;
    text-align: center;
    font-size: 32px;
    color: #333;
    border-bottom: 1px solid #f0f0f0;
}

.time-scroll .time-item.selected {
    color: #4080ff;
    font-weight: bold;
}

.time-scroll .time-item:last-child {
    border-bottom: none;
}

.level,
.role {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px;
    font-size: 20px;
    box-sizing: border-box;
}

.level input,
.role input {
    width: 70%;
    outline: none;
    border: none;
    font-size: 20px;
}

.popup-content .top {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    padding: 20px;
}

.popup-content .body {
    display: flex;
    height: 500px;
}

.popup-nav {
    display: flex;
    flex-direction: column;
    width: 200px;
    /* 根据需要调整宽度 */
    border-right: 1px solid #eee;
    padding: 20px 0;
}

.nav-item {
    padding: 20px;
    font-size: 20px;
    color: #666;
    cursor: pointer;
}

.nav-item.active {
    color: #388aff;
    font-weight: bold;
    border-left: 4px solid #388aff;
    padding-left: 16px;
}

.popup-scroll {
    flex: 1;
    display: flex;
    overflow-y: auto;
    flex-direction: column;
    max-height: 500px;
}

.popup-group-title {
    font-size: 28px;
    font-weight: bold;
    color: #333;
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}

.popup-item {
    padding: 20px;
    font-size: 20px;
    color: #333;
    border-bottom: 1px solid #f5f5f5;
    text-align: center;
    cursor: pointer;
}

.popup-item:last-child {
    border-bottom: none;
}

.popup-item-title {
    font-size: 30px;
    font-weight: 700;
    text-align: center;
    margin-left: 20px;
}

.popup-item-body {
    display: flex;
    justify-content: space-evenly;
    flex-wrap: wrap;
    padding-top: 20px;
}

.popup-item-body .popup-item-body-item {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 25%;
    padding: 20px;
    border: 1px solid #aaa;
    border-radius: 7px;
    box-sizing: border-box;
    margin-left: 20px;
    margin-top: 20px;
}

.popup-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    font-size: 28px;
    color: #999;
}

.popup-group {
    margin-bottom: 20px;
    max-height: 100%;
}

.popup-group-title {
    font-size: 28px;
    font-weight: bold;
    color: #333;
    padding: 10px 0;
    border-bottom: 1px solid #eee;
}

.popup-footer {
    width: 100%;
    text-align: center;
    font-size: 28px;
    padding: 20px;
    color: #999;
    border-top: 1px solid #eee;
    box-sizing: border-box;
}

.popup-footer2 {
    display: flex;
    align-items: center;
    width: 100%;
    text-align: center;
    font-size: 28px;
    color: #999;
    border-top: 1px solid #eee;
    box-sizing: border-box;
}

.popup-footer2 .cancel,
.popup-footer2 .confirm {
    display: block;
    width: 50%;
    padding: 20px;
    text-align: center;
    font-size: 28px;
    box-sizing: border-box;

}

.popup-footer2 .cancel {
    color: #198dda;
}

.popup-footer2 .confirm {
    background-color: #198dda;
    color: #fff;
}

.orderMsg {
    width: 100%;
    display: flex;
    padding: 40px;
    box-sizing: border-box;
    padding-bottom: 200px;
}

.orderMsg .pay,
.orderMsg .time {
    width: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.orderMsg .pay img,
.orderMsg .time img {
    width: 60px;
    height: 60px;
    margin-bottom: 20px;
}

.orderMsg .pay .text,
.orderMsg .time .text {
    font-size: 20px;
    font-weight: 700;
}

.footer {
    width: 60%;
    position: fixed;
    left: 50%;
    transform: translateX(-50%);
    bottom: 30px;
    font-size: 25px;
}

.footer .tip {
    width: 100%;
    color: #aaa;
    background-color: #eee;
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.footer .button {
    width: 100%;
    height: 100px;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: skyblue;
    border-radius: 16px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    transition: all .3s;
}

.footer .button:hover {
    background: #3e91ff;
    cursor: pointer;
}
</style>